package com.sunseaypw.springmvc.web;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

@Controller
@RequestMapping("/file")
public class Upload {
    /**
     *  文件上传
     * @return
     */
    @RequestMapping("/fileUpload")
    public String fileUpload(HttpServletRequest request, MultipartFile upload) throws IOException {
        System.out.println("文件上传");
        // 设置文件上传的位置
        String path = request.getSession().getServletContext().getRealPath("/uploads/");
        // 判断该路径是否存在
        File file = new File(path);
        if(!file.exists()) {
            // 创建文件夹
            file.mkdirs();
        }
        // 这里不再需要我们手动去解析文件,文件配置解析器闯过来的 upload 就是解析后的文件项
        // Spring 主要在这里做了简便,不再需要我们自己去解析文件中的内容

        // 获取上传文件的名称,包括其后缀
        String fileName = upload.getOriginalFilename();

        System.out.println(fileName);
        // 把文件的名称设置为唯一
        String uuid = UUID.randomUUID().toString().replace("-", "");

        fileName = uuid+"_"+fileName;
        System.out.println(path);
        // 完成文件上传
        upload.transferTo(new File(path,fileName));
        return "success.html";
    }
}